ROLL 配置系统详解
ROLL 框架采用了一套结构化的配置系统,通过 YAML 文件定义实验参数。本文档将详细介绍 ROLL 的配置设计,帮助新用户理解框架的配置结构和扩展方式。
配置系统架构
ROLL 的配置系统主要由以下几个核心组件构成:
1. BaseConfig - 基础配置类
BaseConfig 是所有配置的基类,定义了实验的基本参数,如:
- 实验名称 (
exp_name) - 随机种子 (
seed) - 输出目录 (
output_dir) - 日志目录 (
logging_dir) - 跟踪器配置 (
track_with,tracker_kwargs) - 训练步数控制 (
max_steps,save_steps,logging_steps,eval_steps) - 批处理大小 (
rollout_batch_size,val_batch_size) - 序列长度设置 (
prompt_length,response_length,sequence_length)
2. WorkerConfig - 工作节点配置类
WorkerConfig 定义了每个工作节点(如训练/推理角色)的配置,包括:
- 模型参数 (
model_args) - 训练参数 (
training_args) - 数据参数 (
data_args) - 生成参数 (
generating_args) - 策略参数 (
strategy_args) - 设备映射 (
device_mapping) - 工作节点数量 (
world_size)
3. PipelineConfig - 流水线配置类
在 RLVR 场景中,RLVRConfig 继承自 BaseConfig,作为具体的任务的配置类(其他PipelineConfig包括AgenticConfig、DPOConfig、DistillConfig)。它包含了:
- 角色配置(
actor_train,actor_infer,reference,critic,rewards等) - RL 算法相关参数(
ppo_epochs,adv_estimator,reward_clip等) - 数据处理参数(
max_len_mask,difficulty_mask等)